package co.gov.medellin.ssti.sub.model.service.impl;

import java.util.Collection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import co.gov.medellin.ssti.sub.model.dao.exception.DAOException;
import co.gov.medellin.ssti.sub.model.dao.impl.VflexDAOImpl2;
import co.gov.medellin.ssti.sub.model.service.VflexService;
import co.gov.medellin.ssti.sub.model.vo.ValorFlexibleVO;
import co.gov.medellin.ssti.sub.model.vo.VflexVO;

@Service
public class VflexServiceImpl implements VflexService {
	@Autowired
	VflexDAOImpl2 vflexDAOImpl2;

	public Collection<VflexVO> findVflex(String nombreTipoVflex) {
		try {
			return vflexDAOImpl2.findVflex(nombreTipoVflex);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<VflexVO> findVflex(String nombreTipoVflex,
			String codePadre) {
		try {
			return vflexDAOImpl2.findVflex(nombreTipoVflex, codePadre);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<VflexVO> findCodeValorFlex(String strNombre) {
		try {
			return vflexDAOImpl2.findCodeValorFlex(strNombre);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Long findCodePadreByCodeHijo(Long codeHijo) {
		try {
			return vflexDAOImpl2.findCodePadreByCodeHijo(codeHijo);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public boolean exists(String strNombre, String strCodigo) {
		try {
			return vflexDAOImpl2.exists(strNombre, strCodigo);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<ValorFlexibleVO> findDominio(String tipovfl, String option) {
		try {
			return vflexDAOImpl2.findDominio(tipovfl, option);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public int actValorFlex(String strCodVFL) {
		try {
			return vflexDAOImpl2.actValorFlex(strCodVFL);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	@Override
	public Collection<VflexVO> findVflex(String nombreTipoVflex, int origen) {
		try {
			return vflexDAOImpl2.findVflex(nombreTipoVflex, origen);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	@Override
	public Collection<VflexVO> findByTVFCodigo(String tvfCodigo) {
		try {
			return vflexDAOImpl2.findByTVFCodigo(tvfCodigo);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

}
